﻿using System;
using System.Data;
using System.IO;
using System.Windows.Forms;

namespace Operacional
{
    class PedeOrdemProd
    {
        #region Declarações
        public static DataView dvProducao;
        public static DataTable dtProducao;
        OpenFileDialog txtFile = new OpenFileDialog();
        frmProducao producao = new frmProducao();
        #endregion

        public PedeOrdemProd()
        {            
            if ( string.IsNullOrEmpty(Properties.Settings.Default.fileProd) || !File.Exists(Properties.Settings.Default.fileProd))
                ask4File();

            if (Properties.Settings.Default.fileProd != "" & File.Exists(Properties.Settings.Default.fileProd))
            {
                dtProducao = new DataTable(); 
                dtProducao.Clear();

                string[] linhas = File.ReadAllLines(Properties.Settings.Default.fileProd);
                //Colunas
                String[] cols = linhas[0].Split(';');
                foreach (String Col in cols) dtProducao.Columns.Add(Col);

                //Linhas
                dtProducao.BeginLoadData();
                for (int l = 1; l < linhas.Length; l++)
                {
                    DataRow row = dtProducao.NewRow();
                    row.ItemArray = linhas[l].Split(';');
                    dtProducao.Rows.Add(row);
                }
                dtProducao.EndLoadData();
                dvProducao = dtProducao.DefaultView;

                InputBox.Numerico = true;
                InputBoxResult input = InputBox.Show("Insira o nº da Ordem de Produção:", "");

                if (input.Text != "")
                {
                    dvProducao.RowFilter = string.Format("[LINHA] = '{0}' and [N.O.PRODUCAO] = '{1}'", frmLinhas.numLinha, input.Text);

                    if (dvProducao.Count > 0)
                    {                        
                        producao.MdiParent = Program.Entrada;
                        producao.Show();
                        Application.OpenForms["frmLinhas"].Close();
                    }
                    else MessageBox.Show("Não existe essa Ordem de Produção para a Linha escolhida");
                }
            }
        }

        private void ask4File()
        {
            txtFile.Filter = "Ficheiro de Texto (*.txt)|*.txt|Vírgula Flutuante (*.csv)|*.csv";
            if (txtFile.ShowDialog() == DialogResult.OK)
            {
                Properties.Settings.Default.fileProd = txtFile.FileName;
                Properties.Settings.Default.Save();
            }
        }
    }
}
